home *** CD-ROM | disk | FTP | other *** search
- assume cs:text
- text segment para public 'CODE'
-
- ; assume BITMAP_WIDTH==32
- public _draw16,_col32k0,_col32k1
- _draw16 proc near
- push ebp
- push ebx
- push ecx
- push edx
- push esi
- push edi
- mov edi,28[esp] ; edi <-- work
- mov ebp,36[esp] ; ebp <-- bitmap data structure
- mov esi,[ebp] ; esi <-- PixelPattern
- add esi,40[esp]
- mov edx,4[ebp] ; edx <-- MaskPattern
- add edx,40[esp]
- mov ebp,44[esp] ; bit mask
- #0:
- mov ecx,48[esp] ; ecx <-- width
- mov eax,[esi] ; eax <-- *pix++
- add esi,4
- mov ebx,[edx] ; ebx <-- *mask++
- add edx,4
- #1:
- test ebx,ebp ; mask check
- je SHORT #3
- test eax,ebp ; pixel check
- je SHORT #2
- black:
- _col32k0 = black+3
- mov [edi],word ptr 0H ; black
- jmp SHORT #3
- #2:
- white:
- _col32k1 = white+3
- mov [edi],word ptr 7fffH ; white
- #3:
- add edi,2
- shr eax,1
- shr ebx,1
- loop #1
-
- add edi,32[esp]
- dec dword ptr 52[esp] ; hight--
- jnz SHORT #0
- pop edi
- pop esi
- pop edx
- pop ecx
- pop ebx
- pop ebp
- ret
- _draw16 endp
-
- public _putword
- _putword proc near
- push ebx
- mov eax,8[esp]
- mov bx,12[esp]
- mov fs:[eax],bx
- pop ebx
- ret
- _putword endp
-
- public _getword
- _getword proc near
- mov eax,4[esp]
- mov ax,fs:[eax]
- ret
- _getword endp
-
- text ends
- end
-